using System;
using System.Collections;

namespace Northwind.DataAccess
{
	
	public abstract class OrderDetail
	{
	
		public System.Decimal UnitPrice
		{
			get { return this.m_UnitPrice; }
			set { this.m_UnitPrice = value; }
		}

		public System.Int16 Quantity
		{
			get { return this.m_Quantity; }
			set { this.m_Quantity = value; }
		}

		public System.Double Discount
		{
			get { return this.m_Discount; }
			set { this.m_Discount = value; }
		}

		public Northwind.DataAccess.Orders Orders
		{
			get { return this.m_Orders; }
			set { this.m_Orders = value; }
		}

		public Northwind.DataAccess.Product Product
		{
			get { return this.m_Product; }
			set { this.m_Product = value; }
		}

		protected void OnCreate(object[] args)
		{
			this.Orders = (Orders)args[0];
			this.Product = (Product)args[1];
		}
		
//		protected void OnMaterialize()
//		{
//		}
		
//		protected void OnValidate()
//		{
//		}
		
		protected abstract System.Decimal m_UnitPrice { get; set; }

		protected abstract System.Int16 m_Quantity { get; set; }

		protected abstract System.Double m_Discount { get; set; }

		protected abstract Northwind.DataAccess.Orders m_Orders { get; set; }

		protected abstract Northwind.DataAccess.Product m_Product { get; set; }

	}
}
